You can't do screenshots for versions before 2.3, either. The screenshot method was introduced there (and expanded in posterior versions). All pre-2.3 screenshot apps (and a lot of the current ones, still) used root-level access to read the framebuffer (/dev/graphics/fb0) directly.
Yeah, my question really is… now that you have something that lets you access what's being seen, what stops someone from doing a no-root-needed screencast app, using the same access?
Knowledge? :-P In all seriousness... As an app writer, I wouldn't risk it; there is still no method in the public API to do it, and natively linking to surfaceflinger to use the capture method is risky (since as a non-public method it's subject to change in posterior versions). I'm not even aware of simple screenshot apps using it, let alone going through the effort of assembling screenshots into an encoded movie for a screencast... :(
I knew there should be a reason why :-P Anyway, the video rendering should be done offline, but the fact that the method isn't public seems reason enough. Sad, tho…
In all seriousness... As an app writer, I wouldn't risk it; there is still no method in the public API to do it, and natively linking to surfaceflinger to use the capture method is risky (since as a non-public method it's subject to change in posterior versions).
I'm not even aware of simple screenshot apps using it, let alone going through the effort of assembling screenshots into an encoded movie for a screencast... :(
Anyway, the video rendering should be done offline, but the fact that the method isn't public seems reason enough. Sad, tho…